将数据放入头文件中是否可以"正常"? |
您所在的位置:网站首页 › system 函数头文件 › 将数据放入头文件中是否可以"正常"? |
比方说,我创建的C.一个简单的库调用地块比方说,我有一对夫妇的功能,例如PlotFunction(),SetTitle(),SetScale()等我们也可以说我想提供一些基本的情节,如Triangle,Rectangle等这是资源文件.我认为这些资源将被保存为数组(e.g. triangle[] = {0, 1, 2, 3, 2, 1, 0}) 这是一个可以将数据包含在头文件中的示例吗?通常我认为头文件是为函数原型保留的,但这似乎是一个在头中包含变量/结构的实例. 这被认为是不好的做法吗?有更好的替代方案吗? 1> John Zwinck..: 您不应该将这些数据放在头文件中.代替: extern const int triangle[]; extern const size_t triangle_size;然后在源(.c)文件中: const int triangle[] = {0, 1, 2, 3, 2, 1, 0}; const size_t triangle_size = sizeof(triangle) / sizeof(triangle[0]);这样,数据只能编译和链接一次. 但是,如果您确实需要使用此数据来实际有效地初始化其他变量,您可以考虑这样: #define TRIANGLE {0, 1, 2, 3, 2, 1, 0}然后用户可以这样做: int shape[] = TRIANGLE;像野生这样的着名例子是PTHREAD_MUTEX_INITIALIZER. 这样做的另一个好处是,您可以更改数据而不会导致完全重建.对标头的更改会导致在包含它们的所有文件中进行重建. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |